import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { PassportModule, AuthGuard } from '@nestjs/passport';
import { APP_GUARD } from '@nestjs/core';

import { TestController } from './test.controller';
import { TestService } from './test.service';
import { ItemSchemas } from './schemas/item.schemas';
import { DatabaseModule } from '../database/database.module';
import { itemProviders } from './schemas/item. providers';

@Module({
  imports: [
    // MongooseModule.forFeature([
    //   // 关系型数据库的表
    //   { name: 'snake', schema: ItemSchemas },
    //   { name: 'item', schema: ItemSchemas },
    // ]),
    // 向用户模块注册 passport，并配置默认策略为 jwt，因为覆盖了默认的策略，所以要在每个使用 @AuthGuard() 的模块导入 PassportModule
    PassportModule.register({ defaultStrategy: 'jwt' }), // 默认战略 jwt
    DatabaseModule
  ],
  controllers: [TestController],
  providers: [TestService, ...itemProviders]
})
export class TestModule {}
